﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;

namespace IntegracionOmegaIgss.Data.Entidades
{
   

    public class Solicitud
    {
        private String nombres;
        private IList<PruebaSolicitud> pruebasSolicitud;
        [XmlIgnore]
        public virtual int Id { get; set; }

        [XmlIgnore]
        public virtual  String IdSolicitud {
            get
            {
                return String.Format("{0}-{1}-{2}", IdUnidad, Fecha, Correlativo);
            }
        }    

        public virtual String IdUnidad { get; set; }
        public virtual String Fecha { get; set; }
        public virtual String Correlativo { get; set; }
        public virtual String NumeroAfiliado { get; set; }
        public virtual String NumeroBeneficiario { get; set; }
        public virtual String NombreCompletoAfiliado { get; set; }
        public virtual String NombreCompletoBeneficiario { get; set; }
        public virtual String NombresAfiliado { get; set; }
        public virtual String ApellidosAfiliado { get; set; }
        public virtual String NombresBeneficiario { get; set; }
        public virtual  String ApellidosBeneficiario { get; set; }
        public virtual String FechaNacimiento { get; set; }
        public virtual String FechaAdmision { get; set; }
        public virtual String EstadoAdmision { get; set; }
        public virtual String Clasificacion { get; set; }
        public virtual String IdServicio { get; set; }
        public virtual String DescripcionServicio { get; set; }
        public virtual String IdClinica { get; set; }
        public virtual String DescripcionClinica { get; set; }
        public virtual Estado Estado { get; set; }

        public virtual String Nombres { 
            get {
                  String nombreDisponible = "";
                    if (nombres == "")
                    {
                        if (NombreCompletoAfiliado != "")
                        {
                            nombreDisponible= NombreCompletoAfiliado;
                        }
                        else
                        {
                           nombreDisponible=NombreCompletoBeneficiario;
                        }                       
                    }
                    return nombreDisponible;  
                }            
            set {
                   nombres = value;
            } }

        public virtual String Apellidos { get; set; }
        public virtual String Sexo { get; set; } 
        public virtual Medico Medico { get; set; }       
        public virtual IList<Prueba> Pruebas{ get; set; }   
        public virtual IList<PruebaSolicitud> PruebasSolicitud {
           get{
               return pruebasSolicitud;
                } 
            set{
                pruebasSolicitud = value;
                foreach (var pruebaSolicitud in pruebasSolicitud)
                {
                    pruebaSolicitud.Solicitud = this;
                }
            } }
        public virtual IList<EstadoSolicitud> EstadosSolicitud { get; set; }

        public virtual void agregarEstadoSolicitud(EstadoSolicitud estadoSolicitud) {
            if (this.EstadosSolicitud == null)
                this.EstadosSolicitud = new List<EstadoSolicitud>();
            this.EstadosSolicitud.Add(estadoSolicitud);
        }
        
    }
}
